package com.msg.phonebook.service.impl;

	import java.util.Date;
	import java.util.Properties;
	import javax.mail.Address;
	import javax.mail.BodyPart;
	import javax.mail.Message;
	import javax.mail.MessagingException;
	import javax.mail.Multipart;
	import javax.mail.Session;
	import javax.mail.Transport;
	import javax.mail.internet.InternetAddress;
	import javax.mail.internet.MimeBodyPart;
	import javax.mail.internet.MimeMessage;
	import javax.mail.internet.MimeMultipart;
 public class SimpleMailSender {  
	 public boolean sendTextMail(MailSenderInfo mailInfo) {  // 判断是否需要身份认证 
		 MyAuthenticator authenticator = null;  
		 Properties pro = mailInfo.getProperties();  
		 if (mailInfo.isValidate()) {   
			 // 如果需要身份认证，则创建一个密码验证器   
			 authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword()); 
			 }  
		 // 根据邮件会话属性和密码验证器构造一个发送邮件的session  
		 Session sendMailSession = Session.getDefaultInstance(pro, authenticator);  try {   
			 // 根据session创建一个邮件消息   
			 Message mailMessage = new MimeMessage(sendMailSession);   
			 // 创建邮件发送者地址  
			 Address from = new InternetAddress(mailInfo.getFromAddress());   
			 // 设置邮件消息的发送者 
			 mailMessage.setFrom(from);   
			 // 创建邮件的接收者地址，并设置到邮件消息中  
			 Address to = new InternetAddress(mailInfo.getToAddress());   
			 mailMessage.setRecipient(Message.RecipientType.TO, to); 
			 // 设置邮件消息的主题  
			 mailMessage.setSubject(mailInfo.getSubject());  
			 // 设置邮件消息发送的时间   
			 mailMessage.setSentDate(new Date());   
			 // 设置邮件消息的主要内容   
			 String mailContent = mailInfo.getContent();   
			 mailMessage.setText(mailContent);  
			 // 发送邮件   
			 Transport.send(mailMessage);   
			 return true;  
			 } catch (
					 MessagingException ex
					 ) {   
				 			ex.printStackTrace(); 
					 		}  
		 return false; 
		 }
  public static boolean sendHtmlMail(MailSenderInfo mailInfo) {  
	  // 判断是否需要身份认证  
	  MyAuthenticator authenticator = null;  
	  Properties pro = mailInfo.getProperties();  
	  // 如果需要身份认证，则创建一个密码验证器 
	  if (mailInfo.isValidate()) {   
		  authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword()); 
	  } 
	  // 根据邮件会话属性和密码验证器构造一个发送邮件的session  
	  Session sendMailSession = Session.getDefaultInstance(pro, authenticator); 
	  try {   // 根据session创建一个邮件消息  
		  Message mailMessage = new MimeMessage(sendMailSession);   
		  // 创建邮件发送者地址   
		  Address from = new InternetAddress(mailInfo.getFromAddress());   
		  // 设置邮件消息的发送者   
		  mailMessage.setFrom(from);   
		  // 创建邮件的接收者地址，并设置到邮件消息中   
		  Address to = new InternetAddress(mailInfo.getToAddress());   
		  // Message.RecipientType.TO属性表示接收者的类型为TO   
		  mailMessage.setRecipient(Message.RecipientType.TO, to);   
		  // 设置邮件消息的主题   
		  mailMessage.setSubject(mailInfo.getSubject());  
		  // 设置邮件消息发送的时间   
		  mailMessage.setSentDate(new Date());  
		  // MiniMultipart类是一个容器类，包含MimeBodyPart类型的对象   
		  Multipart mainPart = new MimeMultipart();  
		  // 创建一个包含HTML内容的MimeBodyPart  
		  BodyPart html = new MimeBodyPart();   
		  // 设置HTML内容 
		  html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");   
		  mainPart.addBodyPart(html);   
		  // 将MiniMultipart对象设置为邮件内容   
		  mailMessage.setContent(mainPart);   
		  // 发送邮件   
		  Transport.send(mailMessage);   
		  return true;  
		  } catch (MessagingException ex) {  
			  ex.printStackTrace(); 
			  } 
	  return false; 
	  }
}

